﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Upeu.Venta.Api.Models;
using Upeu.Venta.Data.Business;
using Upeu.Venta.Data.Entities;

namespace Upeu.Venta.Api.Controllers
{
    public class ProveedorController : ApiController
    {
        // GET api/<controller>
        /* yuri mamani ramos crud Proveedores*/
        public IEnumerable<ProveedorModel> Get()
        {
            //return new string[] { "value1", "value2" };
            return ProveedorBusiness.GetListByFilter("").Select(
                t => new ProveedorModel
                {
                    Id = t.Id,
                    RazonSocial = t.RazonSocial,
                    Ruc = t.Ruc,
                    Nombre = t.Nombre,
                    Direccion = t.Direccion,
                    Telefono = t.Telefono,
                    Celular = t.Celular,
                    Estado = t.Estado,
                });
        }

        // GET api/<controller>/5
        public ProveedorModel Get(Guid id)
        {
            Proveedor t = ProveedorBusiness.GetById(id);
            return new ProveedorModel
            {
                Id = t.Id,
                RazonSocial = t.RazonSocial,
                Ruc = t.Ruc,
                Nombre = t.Nombre,
                Direccion = t.Direccion,
                Telefono = t.Telefono,
                Celular = t.Celular,
                Estado = t.Estado,
            };
        }

        // POST api/<controller>
        public ProveedorModel Post([FromBody]ProveedorModel model)
        {
            Proveedor t = ProveedorBusiness.Create(new Proveedor
            {
                Nombre = model.Nombre,
                RazonSocial = model.RazonSocial,
                Ruc = model.Ruc,
                Direccion = model.Direccion,
                Telefono = model.Telefono,
                Celular = model.Celular,
                Estado = model.Estado,
            });
            return new ProveedorModel
            {
                Id = t.Id,
                RazonSocial = t.RazonSocial,
                Ruc = t.Ruc,
                Nombre = t.Nombre,
                Direccion = t.Direccion,
                Telefono = t.Telefono,
                Celular = t.Celular,
                Estado = t.Estado,
            };
        }

        // PUT api/<controller>/5
        public ProveedorModel Put(Guid id, [FromBody]ProveedorModel model)
        {
            Proveedor t = ProveedorBusiness.Update(new Proveedor
            {
                Id = id,
                RazonSocial = model.RazonSocial,
                Ruc = model.Ruc,
                Nombre = model.Nombre,
                Direccion = model.Direccion,
                Telefono = model.Telefono,
                Celular = model.Celular,
                Estado = model.Estado,
            });
            return new ProveedorModel
            {
                Id = t.Id,
                RazonSocial = t.RazonSocial,
                Ruc = t.Ruc,
                Nombre = t.Nombre,
                Direccion = t.Direccion,
                Telefono = t.Telefono,
                Celular = t.Celular,
                Estado = t.Estado,
            };
        }

        // DELETE api/<controller>/5
        public void Delete(Guid id)
        {
            ProveedorBusiness.Delete(id);
        }
    }
}